package com.packtpub.as7development.chapter8.test;
import static org.junit.Assert.*;
import java.util.List;
import javax.ws.rs.core.UriBuilder;
import javax.xml.ws.BindingProvider;
import org.apache.cxf.interceptor.LoggingInInterceptor;
import org.apache.cxf.interceptor.LoggingOutInterceptor;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import org.jboss.resteasy.client.ClientRequest;
import org.jboss.resteasy.client.ClientRequestFactory;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.JSONValue;
import org.junit.Test;
import com.packtpub.as7development.chapter8.model.Seat;
import com.packtpub.as7development.chapter8.webservice.TicketSOAPServiceItf;
public class TicketWebServiceIT {
@Test
public void testSOAP() {
System.out.println("TEST SOAP WS Service");
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setServiceClass(TicketSOAPServiceItf.class);
factory.setAddress("http://localhost:8080/ticket-agency-ws/TicketWebService?wsdl");
factory.getInInterceptors().add(new LoggingInInterceptor());
factory.getOutInterceptors().add(new LoggingOutInterceptor());
TicketSOAPServiceItf infoService = (TicketSOAPServiceItf) factory.create();
System.out.println("Got the Service: "+infoService);
//BindingProvider bp = (BindingProvider)infoService;
infoService.bookSeat(1);
System.out.println("Ticket Booked with JAX-WS Service");
List<Seat> list = infoService.getSeats();
dumpSeatList(list);
assertTrue(list.size() > 0);
assertTrue(list.get(1).isBooked());
}
private void dumpSeatList(List<Seat> list) {
System.out.println("================= Available Ticket List ================");
for (Seat seat : list)
System.out.println(seat);
System.out.println();
}
@Test
public void testREST() {
System.out.println("Testing Ticket REST Service");
ClientRequestFactory crf = new ClientRequestFactory(UriBuilder.fromUri(
"http://localhost:8080/ticket-agency-ws/rest/seat").build());
ClientRequest bookRequest = crf
.createRelativeRequest("/4");
String entity=null;
try {
entity = bookRequest.post(String.class).getEntity();
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
assertTrue(entity.equals("Ticket booked"));
System.out.println("Ticket Booked with REST Service");
ClientRequest request = crf
.createRelativeRequest("/");
String seatList=null;
try {
seatList = request.get(String.class).getEntity();
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
System.out.println("SEAT List \n" + seatList);
Object obj=JSONValue.parse(seatList);
JSONArray array=(JSONArray)obj;
JSONObject seat =(JSONObject)array.get(4);
Boolean isbooked = (Boolean)seat.get("booked");
assertTrue(isbooked);
}
}